package com.mldong.timer;

import lombok.Data;
import org.springframework.aop.support.AopUtils;

import java.io.Serializable;
@Data
public class TimerModel implements Serializable {
    private String id;
    /**
     * 任务名称
     */
    private String timerName;

    /**
     * 执行任务的class的类名（实现了TimerTaskRunner接口的类的全称）
     */
    private String actionClass;

    /**
     * 定时任务表达式
     */
    private String cron;
    // redis定时任务表达式
    private String redisCron;

    /**
     * 状态（字典 1运行  2停止）
     */
    private Integer state;

    /**
     * 备注信息
     */
    private String remark;

    public String getId() {
        return timerName;
    }
    public TimerModel build(TimerTaskRunner timerTaskRunner){
        this.setTimerName(AopUtils.getTargetClass(timerTaskRunner).getSimpleName());
        this.setActionClass(AopUtils.getTargetClass(timerTaskRunner).getName());
        this.setCron(timerTaskRunner.getCron());
        this.setRedisCron(timerTaskRunner.getCron());
        this.setState(TimerStateEnum.RUNNING.getCode());
        this.setRemark(timerTaskRunner.getName());
        return this;
    }
}
